package com.arpa.ntocc.common.service;

import com.arpa.ntocc.common.domain.dto.DictDTO;
import com.arpa.ntocc.common.domain.entity.Dict;
import com.arpa.ntocc.common.domain.vo.DictVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 数据字典表 服务类
 * </p>
 *
 * @author liuyj
 * @since 2019-11-25
 */
public interface IDictService extends IService<Dict> {

    /**
     * 保存
     * @param entity
     * @return
     */
    @Override
    boolean save(Dict entity);

    /**
     * 根据code更新实体
     * @param entity
     * @return
     */
    int updateByCode(DictDTO entity);

    /**
     * 查询列表
     * @param dictDTO
     * @return
     */
    List<DictVO> queryList(DictDTO dictDTO);

    /**
     * 查询合计,包含总数
     * @param dictDTO
     * @return
     */
    DictVO queryListSum(DictDTO dictDTO);

    /**
     * 查询缓存列表
     * 结构：多个字典类型和子列表
     * @param types
     * @return
     */
    List<DictVO> queryCacheList(List<String> types);

    /**
     * 删除数据字典并刷新缓存
     * @param ids
     */
    void removeAndFlushCache(List<String> ids);

     /**
      *  @author: Allen chen
      *  @Date: 2020/10/13 16:04
      *  @Description: 停用和启用操作
      */
    Map<String,Object> batchUpdateStatus(List<String> list,Integer status,String type);
}
